package cn.tedu;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * jdbc  父类
 * 定义一个添加方法
 * 1.	加载驱动  加载一次
 * 2.	获取连接
 * 3.	或者执行器
 * 4.	执行sql
 * 5.	解析结果
 * 6.	关闭资源，，
 */
public class JDBC {
    /**
     * 使用构造代码块，完成jdbc驱动的加载
     */
    static {
        try {
            //使用java反射机制，加载驱动
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }

    /**
     * 添加数据到数据库
     * @param sql   sql；包含?占位符
     * @param objects   参数，要?占位符一一对应。。。。。
     * @return
     */
    public int add(String sql,Object... objects){
//        获取连接
        try {
            Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3308/db?", "root", "123456");
            //预编译sql，获取执行器
            PreparedStatement preparedStatement = connection.prepareStatement(sql);
            //添加参数
            for (int i = 0; i <objects.length ; i++) {
                preparedStatement.setObject(i+1,objects[i]);
            }
            //执行sql
            int i = preparedStatement.executeUpdate();
            //关闭资源，，
            preparedStatement.close();
            connection.close();
            //解析结果
            return i;

        } catch (SQLException e) {
            e.printStackTrace();
            return 0;
        }
    }
    /**
     * jdbc  的测试
     * @param args
     */
    public static void main(String[] args) {
        String  sql = "INSERT INTO newstype(NAME) VALUES(?)";
        //添加
        JDBC jdbc = new JDBC();
//        jdbc.add(sql,"xiaoming");
        int i = jdbc.add("INSERT INTO news(title,auhtor,content,createtme,fromnews,type) VALUES(?,?,?,?,?,?)",
                "1231","","elementsByClass","2011/5/6","ly","type");

    }


}
